昨天學會使用 Scanner,讓使用者可以自己輸入消費項目、金額和分類。
今天想讓程式再聰明一點,不只是把輸入的資料顯示出來,而是可以根據消費金額做出不同的判斷。
所以今天要學的是 Java 很常使用的 if / else 條件判斷。
什麼是 if / else?
if / else 可以讓程式根據不同的條件,決定要執行什麼內容。
最基本的寫法是:
if (條件) {
// 條件成立時執行
} else {
// 條件不成立時執行
}
例如今天希望判斷一筆消費有沒有超過 1000 元:
if (amount >= 1000) {
System.out.println("這是一筆較高的支出!");
} else {
System.out.println("這是一筆一般消費。");
}
如果 amount 是 1500,條件 amount >= 1000 成立,就會顯示:
這是一筆較高的支出!
如果只有 150 元,就會顯示:
這是一筆一般消費。
常見的比較運算子
在設定條件時,會使用到一些比較符號:
大於
< 小於
= 大於或等於
<= 小於或等於
== 等於
!= 不等於
這些運算子之後在記帳系統裡也會經常使用。
今天的小實作:消費金額判斷
今天把 Day 3 的程式繼續修改,加入金額判斷功能。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("===== 個人記帳系統 =====");
System.out.print("請輸入消費項目:");
String item = scanner.nextLine();
System.out.print("請輸入消費金額:");
int amount = scanner.nextInt();
scanner.nextLine();
System.out.print("請輸入消費分類:");
String category = scanner.nextLine();
System.out.println();
System.out.println("===== 記帳完成 =====");
System.out.println("消費項目:" + item);
System.out.println("消費金額:" + amount + " 元");
System.out.println("消費分類:" + category);
System.out.println();
System.out.println("===== 消費提醒 =====");
if (amount >= 1000) {
System.out.println("這是一筆較高的支出!");
} else {
System.out.println("這是一筆一般消費。");
}
scanner.close();
}
}
執行看看
假設今天買了一件衣服:
===== 個人記帳系統 =====
請輸入消費項目:衣服
請輸入消費金額:1500
請輸入消費分類:購物
===== 記帳完成 =====
消費項目:衣服
消費金額:1500 元
消費分類:購物
===== 消費提醒 =====
這是一筆較高的支出!
如果改成:
請輸入消費項目:午餐
請輸入消費金額:120
請輸入消費分類:飲食
程式就會顯示:
這是一筆一般消費。
這代表程式已經可以根據不同的輸入產生不同結果,而不是每次都執行完全相同的內容。
再進一步:else if
除了 if 和 else,Java 還有 else if,可以設定更多條件。
例如我可以把消費分成三個等級:
if (amount >= 1000) {
System.out.println("高額消費");
} else if (amount >= 500) {
System.out.println("中等消費");
} else {
System.out.println("一般消費");
}
例如:
120 元 → 一般消費
700 元 → 中等消費
1500 元 → 高額消費
這樣就可以處理比單純 if / else 更複雜的情況。
Day 4 學習心得
今天學習了 Java 的 if / else 條件判斷,並把它加入前幾天的記帳程式中。
原本程式只能接收和顯示消費資料,加入條件判斷之後,已經可以根據消費金額產生不同的提醒。我覺得這讓程式比前幾天更有實際功能,也開始感覺到前面學過的內容可以慢慢組合起來。
今天也認識了 else if,可以一次處理更多不同的條件。之後應該可以利用這些判斷,加入更多記帳系統需要的功能。